package proiectpcbe;

import java.util.Map;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

public class Resurse {

    private Map<Resursa, List<Producator>> producatori;
    private Random m_rand;

    public Resurse() {
        producatori = new HashMap<Resursa, List<Producator>>();
        producatori.put(Resursa.LEMN, new LinkedList<Producator>());
        producatori.put(Resursa.PIATRA, new LinkedList<Producator>());
        producatori.put(Resursa.METAL, new LinkedList<Producator>());
        m_rand = new Random();
    }

    public Producator getProducator(Resursa res) {
        List<Producator> listaProducatori = producatori.get(res);
        synchronized (listaProducatori) {
            if (listaProducatori.isEmpty() == false) {
                return listaProducatori.remove(0);
            }
        }
        return null;
    }

    public void adaugaProducator(Producator prod) {
        List<Producator> lista = producatori.get(prod.getTip());
        synchronized (lista) {
            lista.add(prod);
        }
    }
}
